"""
作者：李明珠
功能：极限排布芯片数量计算
版本:1.0
日期：2020-09-30
"""

import pandas as pd
#读取‘基板代码表’查询基板信息。
data = pd.DataFrame (pd.read_excel('LM-F302001-1 基板代码表20200907.xlsx'))
Substrate_code = input("请输入基板代码:")
Substrate_code1 = eval(Substrate_code)
result = data.loc[data['基板代码'] == Substrate_code1]
print(result)

# 输入镜面直径、串数、芯片长宽信息
diameter = input("请输入镜面直径单位mm:")
chip_length = input("请输入芯片长单位mil:")
chip_wide = input("请输入芯片宽单位mil:")
Mirror_offset = input("请输入镜面偏移量mm:")
String = input("请输入串数:")

# 将镜面直径、串数、芯片长宽信息转换成数值
D = eval(diameter)
chip_L = eval(chip_length)
chip_W = eval(chip_wide)
D_Offset = eval(Mirror_offset)
Array_S = eval(String)
#计算芯片面积、镜面面积、有效面积、芯片排布极限个数，芯片间距
chip_area = (chip_L * 0.0254 * chip_W * 0.0254)
D_area = pow(D / 2,2) * 3.14
active_area = pow((D - D_Offset) / 2,2) * 3.14
Chip_SUM = active_area / ((chip_L * 0.0254+0.3) *( chip_W * 0.0254+0.3))

#计算串并数、芯片间距(2为2颗芯片）
Parallel = Chip_SUM / Array_S
Array_P=int (Parallel)
Chip_spacing = (active_area - chip_area * Chip_SUM) / Chip_SUM/2

#打印输出结果
print('极限排布芯片总数=',"%.2f"%Chip_SUM)
print('芯片串数=', Array_S)
print('芯片并数=', Array_P)
print('芯片间距=',"%.4f"%Chip_spacing)
